/**   
 * @title FileUtil.java 
 * @package com.hopechart.importutil.util 
 * @description 文件流处理工具 
 * @author daijiang@hopechart.com
 * @date 2016年1月13日 上午10:05:59 
 * @version v1.0.0
 * @copyright 杭州鸿泉数字设备有限公司
 */
package com.hopechart.importutil.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.Arrays;
import java.util.List;

import jodd.util.StringUtil;

import com.hopechart.importutil.exception.BusinessException;

/** 
 * @className FileUtil 
 * @description 文件流处理工具 
 * @author daijiang@hopechart.com
 * @date 2016年1月13日 上午10:05:59 
 *  
 */
public class FileUtil {
    
    private FileUtil() {}
    
    private static String DATA_DIR = "";
    
    static {
        DATA_DIR = FileUtil.class.getResource("/").toString() + "datas";
    }
    
    public static boolean checkDir() {
        return checkDir(DATA_DIR);
    }

    public static boolean checkDir(String dirPath) {
        File file = new File(dirPath);
        if(file.isDirectory()) {
            return true;
        }
        return false;
    }
    
    public static InputStream getFileStream(String path) {
        if(StringUtil.isEmpty(path)) {
            return null;
        }
        try {
            return new FileInputStream(new File(path));
        } catch (FileNotFoundException e) {
            throw new BusinessException("获取文件输入流异常， 文件路径【" + path +"】", e);
        }
    }
    
    public static InputStream getFileStream(File file) {
        if(null == file) {
            throw new BusinessException("文件对象为空！");
        }
        try {
            return new FileInputStream(file);
        } catch (FileNotFoundException e) {
            throw new BusinessException("获取文件输入流异常， 文件路径【" + file.getAbsolutePath() +"】", e);
        }
    }
    
    public static List<File> getDirFiles(String dir) throws BusinessException{
        if(checkDir(dir)) {
            File dirObj = new File(dir);
            return Arrays.asList(dirObj.listFiles());
        } else {
            throw new BusinessException("获取数据目录文件异常，目录地址【" + dir +"】", new Throwable());
        }
    }
    
    public static String getExcelFileType(File file) {
        if (null != file) {
            String fileName = file.getName();
            return fileName.substring(fileName.lastIndexOf(".") + 1);
        }
        return "xls";
    }
}
